package kjh820909.basic;

import java.util.Iterator;
import java.util.Scanner;

public class J23_MemberMain {

	private static Scanner sc = new Scanner(System.in);
	//private static J23_MemberService srv =
	//		new J23_MenberDAO();
	private static J23_MemberService srv =
			new J23_MemberDAO();
	// MemberDAO는 MemberService를 구현한
	// 클래스이므로 객체생성시 객체유형을
	// 인터페이스로 정의할 수 있음 (주-종관계)
	
	private static String TITLE =
			"-=회원 관리 프로그램=-";
	private static String MENU =
			"1) 회원추가 2) 회원전체조회 3) 회원상세조회 4) 회원수정 5) 회원탈퇴 0) 종료";
	private static String ADDMSG =
			"아이디,주민번호,비밀번호,우편번호,주소,전화번호,휴대폰,결제방법 순으로 입력하세요";
	private static String ADDOK =
			" 성공적으로 회원가입이 완료되었어요! ";
	private static String UPDMSG1 =
			"수정할 회원 아이디를 입력하세요";
	private static String UPDMSG2 =
			"비밀번호,우편번호,주소,전화번호,휴대혼,결제방법 순으로 입력하세요";
	private static String UPDOK =
			"회원 정보가 입력되었습니다.";
	private static String DELMSG =
			"삭제할 회원 아이디를 입력하세요";
	private static String DELOK =
			"성공적으로 회원정보가 삭제되었어요!";
	private static String EXITOK = 
			"프로그램을 종료합니다~";
	private static final String ERRMSG = "잘못된 코드를 입력하셨서요!";
	private static final String READMSG = "상세조회할 회원 아이디를 입력하세요";
	
			
	public static void main(String[] args) {
		// 회원 관리 프로그램
		System.out.println(TITLE);
		while(true){
			System.out.println(MENU);
			switch(sc.next()){
			case "1" : addMember(); break;     // 회원가입
			case "2" : readMember(); break;    // 전체조회
			case "3" : readOneMember(); break; // 상세조회
			case "4" : modifyMember(); break;  // 회원수정
			case "5" : deleteMember(); break;  // 회원삭제
			case "0" : exitMember(); break;    // 종료
			default: System.out.println( ERRMSG );
			} // switch
		} // while
		
		

	} // main


	private static void exitMember() {
		sc.close();
		System.out.println(EXITOK);
		System.exit(0);
		
	}


	private static void deleteMember() {
		readMember();  // 삭제전 전체자료 출력
		System.out.println(DELMSG);
		String userid = sc.next();
		if(srv.deleteMember(userid)>0)
			System.out.println(DELOK);
		
		
	}


	private static void modifyMember() {
		readMember();  // 수정전 전체자료 출력
		System.out.println(UPDMSG1);
		String userid = sc.next();
		System.out.println(UPDMSG2);
		J23_member m = new J23_member(userid, null, sc.next(), sc.next(), 
				sc.next(), sc.next(), sc.next(), sc.next());
		if(srv.updateMember(m)>0)
			System.out.println(UPDOK);
		
	}


	private static void readOneMember() {
		readMember();
		System.out.println(READMSG);
		String userid = sc.next();
		System.out.println(
				srv.readOneMember(userid));
		
	}


	private static void readMember() {
		Iterator<J23_member> iter =
				srv.readMember().iterator();
		while(iter.hasNext()){
			System.out.println(iter.next());}
		
	}


	private static void addMember() {
		System.out.println(ADDMSG);
		J23_member m = new J23_member(
				sc.next(), sc.next(), sc.next(),
				sc.next(), sc.next(), sc.next(),
				sc.next(), sc.next()
				);
		if(srv.insertMember(m)>0)
			System.out.println(ADDOK);
		
	}

}


















